English translation after german!

Problemstellung

Unregelmäßig aber häufig funktioniert das Internet plötzlich nicht mehr.
Mit den üblichen Tools wie isdnctrl, ifconfig oder imon wird angezeigt,
dass alles in Ordnung ist.
Ich kann aber keine Internetseite mehr öffnen, keinen Rechner pingen
oder sonst irgendwas im Internet.

Logging

Bei dem Fehlerfall tritt folgendes auf (max. Loggingstufe):
Oct 31 10:12:34 superbyte -- MARK --
Oct 31 10:17:04 superbyte kernel: NETDEV WATCHDOG: ippp0: transmit timed out
Oct 31 10:17:04 superbyte kernel: isdn_tx_timeout dev ippp0 dialstate 0
Oct 31 10:17:04 superbyte kernel: ippp0: all channels busy - requeuing!
Oct 31 10:17:44 superbyte kernel: NETDEV WATCHDOG: ippp0: transmit timed out
Diese Fehlermeldung kommt unendlich oft, bis ich reconnecte (isdnctrl
hangup und dann isdntrl dial).

Hardware

Ich setze die PCI Fritz Card v1.0 ein.
00:08.0 Network controller: AVM Audiovisuelles MKTG &
	Computer System GmbH A1 ISDN [Fritz] (rev 02)
Interrupts:
  5:    6762773          XT-PIC  HiSax
aber nicht geshared!
Kernelversion:
Linux version 2.4.22-mh1 (root@superbyte) (gcc version 2.95.4)

ISDN Module
(nicht im Fehlerfall)

hisax                 144640   3  (autoclean)
isdn                  119392   4  (autoclean) [hisax]
slhc                    4704   1  (autoclean) [isdn]
capi                   18336   0
capifs                  3584   1  [capi]
kernelcapi             29760   1  [capi]
capiutil               14848   0  [kernelcapi]

ifconfig
(nicht im Fehlerfall)

ippp0     Protokoll:Punkt-zu-Punkt Verbindung
          inet Adresse:212.183.114.58  P-z-P:195.3.95.186  Maske:255.255.255.255
          UP PUNKTZUPUNKT RUNNING NOARP  MTU:1500  Metric:1
          RX packets:300869 errors:0 dropped:0 overruns:0 frame:0
          TX packets:316706 errors:294 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:30
          RX bytes:113683628 (108.4 MiB)  TX bytes:95157882 (90.7 MiB)

Ursache

Durch den Patch von Karsten Keil:
--- linux-2.4.22.org/drivers/isdn/hisax/avm_pci.c       2002-11-29 00:53:13.000000000 +0100
+++ linux-2.4.22/drivers/isdn/hisax/avm_pci.c   2003-11-10 10:37:18.000000000 +0100
@@ -448,6 +448,7 @@
                /* Here we lost an TX interrupt, so
                 * restart transmitting the whole frame.
                 */
+               printk(KERN_WARNING "avm fritz XDU %p %lx\n", bcs->tx_skb, bcs->Flag);
                if (bcs->tx_skb) {
                        skb_push(bcs->tx_skb, bcs->hw.hdlc.count);
                        bcs->tx_cnt += bcs->hw.hdlc.count;

konnte ich herausfinden, dass sich der TX Prozess ständig aufhängt,
wegen verlorenen Interrupts. allerdings funktionierte das Recovery,
da nach dem ersten Logeintrag auch weiterhin eine Verbindung
aufgebaut war, und der Fehler erst nach vielen Fehlern auftrat.

Normal ist wenn maximal eine Meldung alle paar Minuten auftritt,
problematisch:
Nov 11 12:33:34 superbyte kernel: avm fritz XDU d78f4ec0 e
Nov 11 12:33:38 superbyte last message repeated 95 times
Nov 11 12:33:38 superbyte kernel: avm fritz XDU ca89f840 e
Nov 11 12:33:40 superbyte last message repeated 80 times
Nov 11 12:33:41 superbyte kernel: avm fritz XDU d78f4bc0 e

(Vorallem die Anzahl der Wiederholungen beachten)

Dadurch wurde eindeutig geklärt, dass es sich um einen Treiber-
oder Hardwareproblem handelt.

Ich habe auf meinem PC auch andere Systeme laufen (Mandrake und
Suse) auf denen dieser Fehler nicht auftrat. Daraus folgerte
ich, dass die Hardware in Ordnung ist.

Zurück zu meinen Standardsystem testete ich ältere Kernel, und
siehe, da ein alter 2.4.20er Kernel produzierte den Fehler nicht.
Durch exaktes kopieren der Konfiguration konnte ich auch den
2.4.23 Kernel zum laufen kriegen.

Mich wunderte, dass mit der neuen Konfiguration plötzlich auch
dma funktionierte, welches vorher ein Freeze ausgelöst hatte.

Der Grund für das ISDN und DMA Problem war dass der IDE AMD/Nvidia
Support nicht aktiviert war. Selbst als Modul funktionierte das
System nicht (Freeze bei insmod).

Ich hoffe ich konnte irgendwen helfen, der das gleiche Problem
hat.


********************************

Topic of problem

Sometimes the internet suddenly does not work. With isdn-tools like
isdnctrl, ifconfig or imon it shows that i am connected with the
provider. But i can't open any Internetpage or ping any PC in the
Internet.

Logfiles

With the maximum logging it says:
Oct 31 10:17:04 superbyte kernel: NETDEV WATCHDOG: ippp0: transmit timed out
Oct 31 10:17:04 superbyte kernel: isdn_tx_timeout dev ippp0 dialstate 0
Oct 31 10:17:04 superbyte kernel: ippp0: all channels busy - requeuing!
Oct 31 10:17:44 superbyte kernel: NETDEV WATCHDOG: ippp0: transmit timed out

The message repeats every 40 seconds, until i reconnect to the internet
with isdnctrl hangup and dial.

Hardware

I use PCI Fritz Card v1.0
00:08.0 Network controller: AVM Audiovisuelles MKTG &
	Computer System GmbH A1 ISDN [Fritz] (rev 02)
Interrupts:
  5:    6762773          XT-PIC  HiSax

Kernel

Linux version 2.4.22-mh1 (root@superbyte) (gcc version 2.95.4)

Solution:

The Isdn Driver is losing interrupts. Try to change the IDE Cable or
other IDE Devices.
In my case it was that the Kernel did not support IDE AMD/Nvidia.
Compiling it in helped and in addition DMA worked afterwards (but
even without DMA the Problem did not appear again)
Fr Jul 30 13:54:24 CEST 2021
patent_button.gif valid-html401.png elektra.jpg fsfe-logo.png valid-css.png vim.gif anybrowser.gif